# -*- coding: utf-8 -*-
"""
Created on Thu Aug 10 15:05:41 2023

@author: skunk69
"""

import json

chinese_name = u'IT企业员工工作成瘾问卷'
english_name = 'Workaholism Questionnaire for IT Employee'
abbreviation = 'WQIT'
category = u'应激及相关行为量表'

outline = u"""工作成瘾是指存在强烈的工作倾向和工作满足体验，以至于很难从工作中解脱出来。通俗地讲，工作成瘾者是指只知道工作，不顾家庭，没有正常生活的人。
《IT企业员工工作成瘾问卷》由王明辉等于2008年编制。量表包括被测者对工作所表现出来的态度，反映其投入到工作中的精力和时间、在工作过程中与同事、上级的人际关系，以及在工作过程中对工作的控制及期望要求。"""

instruction = u"""本问卷为调查IT企业员工工作成瘾情况而设计。您的回答没有对错之分，不会给您造成任何不良影响。请您不要有所顾虑，根据您的实际情况回答。"""

with open('WQIT.txt','r',encoding='utf-8') as f:
    lines = f.readlines()
    f.close()

items = {}
for key,line in enumerate(lines):
    _,value = line.strip().split('）',maxsplit=1)
    items[key+1] = value.strip()

reverse_items = []
scales = [u'工作动力',u'工作投入',u'工作关系',u'工作支配']
L1 = list(range(1,6))
L2 = list(range(6,10))
L3 = list(range(10,14))
L4 = list(range(14,19))
scales_items = [
    L1,# 工作动力
    L2,# 工作投入
    L3,# 工作关系
    L4,# 工作支配    
    ]

# check scales_items
print(f'scale length={[len(l) for l in scales_items]}')

check = []
for l in scales_items:
    check = check+l
print(f'len(check)={len(check)}')

# complementary set
check_set = {i for i in sorted(check)}^{i for i in range(1,19)}
print(f'complementary set= {check_set}')

factors = []
factors_scales = []
rating = [u'完全不符合',u'不太符合',u'不确定',u'比较符合',u'完全符合']
score_rules = list(range(1,6))

contents = {
    'instruction':instruction,
    'items':items,
    'reverse_items':reverse_items,
    'scales':scales,
    'scales_items':scales_items,
    'factors':factors,
    'factors_scales':factors_scales,
    'rating':rating,
    'score_rules':score_rules       
    }

implementation = u"""《IT企业员工工作成瘾问卷》属于一个自评量表。"""

reliability = u"""正式样本为部分IT企业员工。该量表的内部一致性系数为0.825，各分量表的alpha系数，除工作关系分量外，均在0.7以上。"""
validity = u"""结构效度良好。"""
measurements = {'reliability':reliability,'validity':validity}

interpretation = u"""所有条目的得分之和即为该量表的总分，反映了被测者工作成瘾的总体状况。"""

applications = u"""尚未确定出临床诊断的划界分，实际应用效果也有待进一步的后续研究。"""

this_scale = {
    'chinese_name':chinese_name,
    'english_name':english_name,
    'abbreviation':abbreviation,
    'category':category,
    'outline':outline,
    'contents':contents,
    'implementation':implementation,
    'measurements':measurements,
    'interpretation':interpretation,
    'applications':applications    
    }

with open(abbreviation+'.json','w+',encoding='utf-8') as f:
    json.dump(this_scale,f,indent=2,ensure_ascii=False)